package com.yaorange.teaching.service;

import java.util.List;

import com.yaorange.teaching.bo.ExamRecordBo;
import com.yaorange.teaching.bo.ScoreDistributionBo;
import com.yaorange.teaching.bo.ScoreTrendBo;
import com.yaorange.teaching.domain.YaExamDetail;
import com.yaorange.teaching.domain.YaExamRecord;

/**
 * 学生成绩记录Service接口
 *
 * @author ruoyi
 * @date 2024-11-13
 */
public interface IYaExamRecordService
{
    /**
     * 查询学生成绩记录
     *
     * @param id 学生成绩记录主键
     * @return 学生成绩记录
     */
    public YaExamRecord selectYaExamRecordById(Long id);

    /**
     * 查询学生成绩记录列表
     *
     * @param yaExamRecord 学生成绩记录
     * @return 学生成绩记录集合
     */
    public List<YaExamRecord> selectYaExamRecordList(YaExamRecord yaExamRecord);

    /**
     * 新增学生成绩记录
     *
     * @param yaExamRecord 学生成绩记录
     * @return 结果
     */
    public int insertYaExamRecord(ExamRecordBo yaExamRecord);

    /**
     * 修改学生成绩记录
     *
     * @param yaExamRecord 学生成绩记录
     * @return 结果
     */
    public int updateYaExamRecord(YaExamRecord yaExamRecord);

    /**
     * 批量删除学生成绩记录
     *
     * @param ids 需要删除的学生成绩记录主键集合
     * @return 结果
     */
    public int deleteYaExamRecordByIds(Long[] ids);

    /**
     * 删除学生成绩记录信息
     *
     * @param id 学生成绩记录主键
     * @return 结果
     */
    public int deleteYaExamRecordById(Long id);

    /**
     * 根据班级id查询出对应的学生成绩详情实体列表
     * @param classesId
     * @return
     */
    List<YaExamDetail> selectYaExamDetailList(Long classesId);

    Integer queryLastWeek(Long classesId, Long stage);

    ScoreTrendBo queryScoreTrend();

    ScoreDistributionBo queryScoreDistribution();

}
